/*
 * Estructuras.h
 *
 *  Created on: Jun 21, 2009
 *      Author: gianpaolo
 */

#ifndef ESTRUCTURAS_H_
#define ESTRUCTURAS_H_
/*
 * Estructura usada para el manejo de indices de clausulas
 * params: 	bool
 *  		pos
 * pos:  Indice de la variable
 * bool: (representado por un entero) dice si la variable pos
 * 		 tiene una negacion o no
 * La utilidad de esta estructura es que nos puede decir si el literal
 * aparece en el indice pos como positivo (bool == 1) o
 * negativo (bool == 0)
 */
typedef struct {
	int pos;
	int bool; 	// 0 neg, 1 pos
} ParOrdenado;

typedef struct {
	short int numVariables; //Parecido al cola de Variable
	ParOrdenado* indices; 	//indece en el arreglo de variables
} Clausula;

typedef struct {
	short int asignacion; 	// -1 para no asignado, 0 para False, 1 para True
} Variable;

/*
 * Estructura de salida para algunas funciones
 */
typedef struct {
	Clausula *claus;
	Variable *varias;
} OutPut;


#endif /* ESTRUCTURAS_H_ */
